
#include <string>
#include <boost/array.hpp>
// #include <huluwa/types.hpp>

namespace huluwa {
namespace net {

/** 
 * @brief   Implement Ethernet style addresses.
 */
class AddressEth {

public:
    /// The type used to represent an address as an array of bytes.
    typedef boost::array<unsigned char, 6> BytesType;

    /// Default constructor.
    AddressEth() 
    {
        addr_.assign(0);
    }

    /// Construct an address from raw bytes.
    explicit AddressEth(const BytesType& bytes)
        : addr_(bytes) 
    {}

    static AddressEth FromString(const char *addr)
    {
    }

    static AddressEth FromString(const char *addr, huluwa::sys::ErrorCode& ec)
    {

    }

    static AddressEth FromString(const std::string& addr)
    {

    }
    static AddressEth FromString(const std::string& addr, huluwa::sys::ErrorCode& ec);
    {

    }

    std::string ToString() const
    {

    }

    std::string ToString(huluwa::sys::ErrorCode& ec) const
    {
    }

private:
    BytesType addr_;
}

}
}
